 La version numrique du sujet fournie en fichier texte (format *.txt) doit tre ouverte en tant que braille informatique. Elle sera affiche en braille 6 points. Lapplication  bloc-notes  des ordinateurs courants, ou des logiciels spcialiss peuvent tre utiliss.  dfaut, reportez-vous  la version en papier. 
Le candidat doit rdiger ses rponses sur un second fichier, et peut demander  un assistant ou  un secrtaire de recopier sa production de faon manuscrite sur une copie.
Un fichier en format *.pdf est galement fourni.
La page du document originale est indique par  PO 1  pour  page originale n1 . Les rfrences aux pages braille (sommaire, rfrences en cours de sujet) font rfrence au sujet braille imprim. 

po `1
`24-nsij`1me1
;l a;g
baccalkrat gn
!v d'?sei"em2 d spcialit
se0 `2024
numriq  sc.c5 *fmatiqs
!v ( m(:edi `19 ju* `2024
dure d l'!v: `3 hrs `30
volume `1 sj
l'ug d ' calcula)ice n'5 ps ktoris.
. q c sj v 5 'mis, aurz-v q'i 5 -6.
c sj -pte `15 pag5 numrot5 d `1  `15 4 ' v(s0 ogle. ' v(s0 ? ;l a;g 5 -pose d dx volum5:
9o l sj -pt4 `39 pag5 numrot5 d `1  `39
9o un ,nexe d `5 6,5 tactil5. l'?@ ds 6,5 tactil5 5 !pos h papi( th(mog2. un fie 6astiq vi(ge 5  .p ( c,didat ;/iste  l'x( `3 p^tie c, q0 `8.
l sj 5 -pos d )s x(s *dpds.
l c,didat )/te @ )s x(s.
swr
x( `1 `4
x( `2 `13
p^tie a `14
p^tie b `16
p^tie c `18
x( `3 `20
p^tie a: ' 3ae . `20
p^tie b: ' 3ae eqipe `24
p^tie c: 3aem2  l'iue d'un tape `30
p^tie d: 3aem2 gn `36
po `2
x( `1 x( `1 (`6 pts)
3 x( pte h ' !7amm1 oj ? python  @ 7aph5.
o avs '!s?t ) ' fme d'u 7aphe @ l.s ?)e c*q d?s sit5 web:
fg `1: 7aphe ac `5 sit5
`;vr 6,e tactile no`1'
' v d q ar2te '!s?te l nb d cit1s (d l.s hyp(txt5) d'u site v(s u k). ai, l site site`4 :t.t `6 l.s hyp(txt5 g r?v2 v(s l site site`5.
@ sit5 9t '!s?ts p ds ojs d ' 3ae ?site* dt l code 5 p^tim dn ci-de8s. ' -6t0 d ' mthode ?calculpopularite* fera l'oj d'un q0 ultr`re
`1 class site:
`2
`3 def --init--(self, nom):
`4 self.nom `" nom
`5 self.predecesseurs `" ()b
`6 self.successeurs `" ()b
`7 self.popularite `" `0
`8 self.couleur `" 'blanche'
`9
`10 def calculpopularite(self):
`11 ...
po `3
l 7aphe !cd2 pt al 2) '!s?t ai:
`1 0 description du graphe
`2 s`1, s`2, s`3, s`4, s`5 `" site('site`1'), site('site`2'), 
site('site`3'), site('site`4'), site('site`5')
`3 s`1.successeurs `" ((s`3,3), (s`4,1), (s`5,3))b
`4 s`2.successeurs `" ((s`1,4), (s`3,5), (s`4,2))b
`5 s`3.successeurs `" ((s`5,3))b
`6 s`4.successeurs `" ((s`1,2), (s`5,6))b
`7 s`5.successeurs `" ((s`3,4))b
`8 s`1.predecesseurs `" ((s`2,4), (s`4,2))b
`9 s`2.predecesseurs `" ()b
`10 s`3.predecesseurs `" ((s`1,3), (s`2,5), (s`5,4))b
`11 s`4.predecesseurs `" ...
`12 s`5.predecesseurs `" ...
`1. x6iq( ' l" `9 d c code.
`2. @ l"s `11  `12 d ct des:ipt0 ( 7aphe n 9t ps -ts. 'copi(  -6t( l code ds l"s `11  `12.
`3. dn(  x6iq( ' v d l'x! s;v,te: ?s`2.successeurs(`1)b(`1)b*
 mesur( ' p(tin?ce d'u site,  -m?ce p 0 at)ibu( u nb appel v d pprt g crespd k nb d fs q'i 5 cit 4 @ k)s sit5, c'e--d l nb d l.s hyp(txt5 g r?v2 h 0. pe, ' v d pprt ( site site`4 5 `3.
`4. dn(, sel ct dfin9, ' v d pprt ( site site`1.
`5. :ire h v) copie l code d ' mthode ?calculpopularite* d ' 3ae ?site* g affecte  l'at)ibut ?popularite* ' v d pprt crespd,te  r?ve 3 at)ibut.
af d calcul( ct v d pprt  c ds sit5, o as f u p^cs 4 l 7aphe d fa  excut( ' mthode ?calculpopularite*  c ds ojs.
po `4
vc l code d ' f g p(met l p^cs ( 7aphe:
`1 def parcoursgraphe( sommetdepart):
`2 parcours `" ()b
`3 sommetdepart.couleur `" 'noire'
`4 listes `" ()b
`5 listes.append( sommetdepart)
`6 while len(listes) !`" `0:
`7 site `" listes.pop(`0)
`8 site .calculpopularite()
`9 parcours.append(site)
`10 for successeur in site.successeurs:
`11 if successeur(`0)b.couleur `"" 'blanche':
`12 successeur(`0)b.couleur `" 'noire'
`13 listes.append( successeur(`0)b)
`14 return parcours  rapp @ pts s;v4s:
9o ' mthode ?append* aj8te u l  un liste python; pe, ?tab.append(el)* p(met d'aj8t( l'l ?el*  ' liste python ?tab*;
9o ' mthode ?pop* ?lve d ' liste l'l situ  ' pos9 *diqe  l r?ve ? v d 't; pe, ?tab.pop(`2)* ?lve l'l  l'*dice ?`2*  l r?ve.
4 c p^cs, @ sit5 n ?c )/ts 9t d c8l '?blanche*' (v p dft  ' :1 d l'oj)  cx g 9t )/ts d c8l '?noire*'.
`6. 4 c p^cs,  manipule ' liste python nwme ?listes* uqm  l'/de d'appels d ' fme ?listes.append(sommet)*  ?listes.pop(`0)*.
dn( ' s)ucture d dn5 crespd4  cs manipul1s.
`7. dn( l nw d c p^cs d 7aphe.
`8. ' f ?parcoursgraphe* r?ve un liste p^cs. *diq( ' v r?voye p l'appel d f: ?parcoursgraphe(s`1)*
po `5
 (e mt l site l 6 ppr, - dt ' v d pprt 5 ' 6 7d.
vc l code d ' f g r?ve l site l 6 ppr, z !?d cm ^gum2 un liste n vide :ten4 ds *st,c5 d ' 3ae ?site*.
`1 def lepluspopulaire(listesites):
`2 maxpopularite `" `0
`3 sitelepluspopulaire `" listesites(`0)b
`4 for site in listesites:
`5 if site.popularite @ maxpopularite:
`6 ...
`7 ...
`8 return sitelepluspopulaire
`9. copi(  -6t( @ l"s `6  `7 d ct f.
`10. dn( c q r?ve ' l" d code s;v,te: ?lepluspopulaire(parcoursgraphe(s`1)).nom*
`11.  ?visage d'utilis( l'?@ ds fs !pos5 ci-deus  '(( l site l 6 ppr pm u )s 7 nb d sit5 (qqs mii(s d sit5). x6iq( * c code 5 adapt  un tll qtt d sit5  )/t(. justifi( v) rpse.
po `6
x( `2 x( `2 (`6 pts)
3 x( )/te d !tocol5 d r8tage, d scurit ds -munic1s  d base d dn5 'lat0n.
un ag?ce d vg !pose ds :sir5 ? batek. q :sire a u nw uq  pae p qa)e 5cal5 crespd4  ds vi5 g t zs ks ds nws d?s.
 gr( @ rs(v1s d ss 3.ts, l'ag?ce utilise un base d dn5. vc ' des:ipt0 ds )s rts d ct base dt @ 3s !im/r5 t " s8li"5  @ 3s ),gr5 *diq5 p u 0:
`;vr 6,e tactile no`2'
rq: l'nc d 3 x( utilise 1 8 un p^tie ds mots s;v4s ( l,gage sql: ?:select, from, where, join on, insert into, values, update set, or, and*.
p^tie a
l'ag?ce d vg possde dx burekx .t*cts.
z pae p u !estat/re d s(vice g hb(ge sa base d dn5  utilise u sy d gest0 d base d dn5 'lat0n.
v )8verz ci-a! u sma ( rsek ?)e @ dx burekx d l'ag?ce d vg  l !estat/re.
 pt y vr @ d?s r8ts (nwms d a  i) ai q l co5t ds li/ss ?)e x.
po `7
fg `1: topolg ( rsek
`;vr 6,e tactile no`3'
`1. dn( dx s(vic5 r?dus p u sy d gest0 d bas5 d dn5 'lat0ns.
l !tocole rip (routing information protocol) 5 u !tocole d r8tage g minimise l nb d r8ts p lls @ paqets ),sit2.
l !tocole ospf (open shortest path first) 5 u !tocole d r8tage g minimise l co5t ( ),sit ds paqets.
`2. dn( ' r8 s;vie p un 'q2te iue ( burek numro `1 jq'k !estat/re *  utilise l !tocole rip.
`3. dn( @ dx r8s q pr3 s;vre un 'q2te iue ( burek numro `2 jq'k !estat/re *  utilise l !tocole ospf. dn( l co5t d q r8.
p^tie b
`4. x6iq( p l'at)ibut ?id-client* a " si cm 3 !im/re 4 ' rt ?clients*.
po `8
`5. dfinir c q'5 un 3 ),gre. dn( ' 8 @ 3s ),gr5 d q rt g ? a ? !cis4 ' 3 !im/re q'zs rfr?c2.
l'ag?ce a obtenu l'ktoris1 d f 5cale 4 qa)e nlls vi5: puerto saibo, puerto kifecho, puerto kifebo et puerto repo. z s8h/te :( un nll :sire g paera p cs qa)e vi5. u stagi/re d l'ag?ce dem,de d l'/de  un *gc ^tifici (ia):
fg `2: rpse d l'ia
gggggggggggggggggggggggggggggg
 aj8t( ' nll :sire nwme ':sire puerto' ac ss 5cal5 crespd,t5, v p8vz utilis( ' 'q2te s;v,te:
insert into croisieres ( nom, escale-`1, escale-`2, escale-`3, escale-`4)
values ( 'croisire puerto',
'puerto sebo',
'puerto kifecho',
'puerto kifebo',
'puerto repo');
gggggggggggggggggggggggggggggg
i tape al ' 'q2te !pose x obt.t l meage d'err s;v4 ( sgbd (sys d gest0 d bas5 d dn5):
?foreign key constraint failed*. 
`6. x6iq( l'err -mise  !pos( un solut0. 
p^tie c
`7. jean barc, u aem,d n l `29 ju* `1972, dem,de u geste -m(cial ? r d sa fdt  l'ag?ce. x6iq( @ 'q2t5 sql s;v,t5 s/si5 p l gest0n/re:
select id
from clients
where nom `" 'barc' and prenom `" 'jean' and
date-naissance `
`" '`1972/06/29' and
pays `" 'allemagne';
select id-reservation
from reservations
where id-client `" 1243;
`8. :ire @ dx 'q2t5 d ' q0 `7. ) ' fme d'un 'q2te uq.
`9. u 3.t s8h/te modifi( sa rs(v1 d'id?tifi4 `20456. i s8h/te r@6ac( ' :sire d ct rs(v1 p ' tt dr of1e d l'ag?ce: ' :sire puerto.
:ire un 'q2te sql g p(met d m)  jr ' base d dn5  0 dn( satisfact0.
`10. dn( un 'q2te sql p(mew4 d'obtn @ nws, !nws  dat5 d n/,ce ds 3.ts ay si ' :sire nwme :sire piano 8 cl nwme :sire puerto.
po `9
x( `3 x( `3 (`8 pts)
3 x( pte h ' !7amm1 or.te oj, h @ ^;5 bin/r5 d '(e  ' rcursivit.
q ,ne, 6s cs5 d .s d )a3nekx 9t organis5 h @ t(ra*s ?neigs. l'un d'z, ' )av(se blanche, 5 un cse s dr8l4 ? `9 tap5. l'organisat d ct cse 5 ^g d :( u !7amme python  /d(  ' bn gest0 d l'v.
p^tie a: ' 3ae ?chien* 
af d caractris( u ., l'organisat dcide d :( un 3ae ?chien* ac @ at)ibuts s;v4s:
9o ?id-chien*, u nb ?t crespd4 k numro at)ibu k . ls d 9 *s:ipt0  ' cse;
9o ?nom*, un a3ne d cs crespd4 k nw ( .;
9o ?role*, un a3ne d cs crespd4 k poste occup p l .: ? f d sa 6c 4 l'awelage, u . a u r4 b dfini  pt 2) '?leader*', '?swing dog*', '?wheel dog*' 8 '?team dog*'.
9o ?id-proprietaire*, u nb ?t crespd4 k numro d l'qipe.
l code python *-6 d ' 3ae ?chien* 5 dn ci-de8s.
`1 class chien:
`2 def --init--(self, id-chien, nom, role, id-prop):
`3 self.id-chien `" id-chien
`4 self.nom `" nom
`5 self.role `" role
`6 self.id-proprietaire `" id-prop
`7 def changer-role(self, nouveau-role):
`8 """change le r4le du chien avec la valeur passe en paramtre."""
`9 ...
po `10
vc u x)3 ds *fm1s dt  .pose h @ .s *s:its  ' cse.
`;taek )/t ? coln5.
liste ds a;vi1s:
9o idc: id-chien
9o idp: id-proprietaire
9o wheel: wheel dog
9o team: team dog
9o swing: swing dog'
idc nom  role idp
`40 duke wheel `10
`41 sadie team `10
`42 zeus swing `11
`43 roxie swing `11
`44 scout team `11
`45 ginger team `11
`46 helka team `11
s;te kx *s:ipt0s, l'organisat !cde  ' :1 d w @ ojs d ty ?chien*  @ stocke 4 ds varis ? si4 u nw x6icite. ai, l'oj dt l'at)ibut id-chien a  v `40 5 stock 4 ' vari ?chien`40*.
`1. :ire l'*s)uct0 p(mew4 d'*st,ci( l'oj ?chien`40* caractris4 l . ay l numro d'*s:ipt0 `40.
`2. sel l'tat d fatigue d ss .s 8 ( !fil d l'tape, l musher (nw dn  ' pn g :d;t l )a3nek) pt dcid( d ,g( l r4 ds .s 4 l'awelage.
'copi(  -6t( ' mthode ?changer-role* d ' 3ae ?chien*.
`3. l !o!it/re d duke dcide d 0 at)ibu( l r4 d '?leader*'.
:ire l'*s)uct0 p(mew4 d'effectu( ct modific1.
p^tie b: ' 3ae ?equipe* 
 s8h/te ! :( un 3ae ?equipe* ay @ at)ibuts s;v4s:
9o ?num-dossard*, u nb ?t crespd4 k numro *s:it h l do^d ( musher;
9o ?nom-equipe*, un a3ne d cs crespd4 k nw d l'qipe;
9o ?liste-chiens*, un liste d'ojs d ty ?chien* dt q l crespd  u . k dp^t d l'tape ( jr;
9o ?temps-etape*, un a3ne d cs (pe '?`2h34*') '!s?t4 l tp mis p l'qipe  p^c8rir l'tape ( jr;
9o ?liste-temps*, un liste d a3n5 d cs p(mew4 d stock( @ tp d l'qipe  n ds `9 tap5. 3 at)ibut pt, pe, :tn ' liste: ?('`4h36', '`3h57', '`3h09', '`5h49', '`4h45', '`3h26', '`4h57', '`5h52', '`4h31')b*.
po `11
 dne l code python s;v4 d ' 3ae ?equipe*.
`1 class equipe:
`2 def --init--(self, num-dossard, nom-equipe):
`3 self.num-dossard `" num-dossard
`4 self.nom-equipe `" nom-equipe
`5 self.liste-chiens `" ()b
`6 self.temps-etape `" ''
`7 self.liste-temps `" ()b
`8
`9 def ajouter-chien(self, chien):
`10 self.liste-chiens .append(chien)
`11
`12 def retirer-chien(self, numero):
`13 ...
`14
`15 def ajouter-temps- etape(self, temps):
`16 self.liste-temps .append(temps)
 ' !r tape, l musher d l'qipe numro `11, '!s?te ? python p l'oj ?eq`11*, dcide d :stitu( un qipe ac @ qa)e .s id?tifis p @ numros `42, `44, `45  `46.  dne ci-de8s @ *s)uct0s python p(mew4 d :( l'qipe ?eq`11*  l'awelage :stitu ds `4 .s !cd2s. 
`1 eq`11 `" equipe(`11, 'malamutes endurants')
`2 eq`11.ajouter-chien(chien`42)
`3 eq`11.ajouter-chien(chien`44)
`4 eq`11.ajouter-chien(chien`45)
`5 eq`11.ajouter-chien(chien`46)
mhsm, l musher s'ap(t q sa .ne helka, . numro `46, n'5 ps k mx d sa fme  i dcide d ' 'tir( d l'awelage.
`4. 'copi(  -6t( ' mthode ?retirer-chien* ay  param)e ?numero*, u ?t crespd4 k numro at)ibu k . ls d l'*s:ipt0,  p(mew4 d m)  jr l'at)ibut ?liste-chiens* a! ')3 ( . dt ' v d l'at)ibut ?id-chien* 5 ?numero*.
`5. ? v /d4 d ' f !cd?te, :ire l'*s)uct0 g p(met d 'tir( helka d l'awelage d l'qipe ?eq`11*.  dne ! l code python d'un f ?convert* !en4  param)e ?/ne*, un a3ne d cs '!s?t4 un dure, dne ? hr  minute.
 supposera q ct dure 5 tj s)ictm *fe  `10 hrs, tp maximal fix p l r@em2  t(min( un tape.
`1 def convert(chaine):
`2 heure-dec `" int(chaine(`0)b) `! int(chaine(`2)b `! chaine(`3)b) / 60
`3 return heure-dec
po `12
`6. *diq( l rsultat r?voy p l'appel ?convert('`4h36')*.
`7. :ire un f ?temps-course* g !?d  param)e ?equipe* d ty ?equipe*  g r?ve u nb 2ow4 crespd4 k cumul ds tp d l'qipe ?equipe*  l'iue ds `9 tap5 d ' cse.
 rapp q ' 3ae ?equipe* .pose d'u at)ibut ?liste-temps*.
p^tie c: 3aem2  l'iue d'un tape 
q jr,  ' f* d l'tape,  dcide d :s);re u ^;e bin/re d '(e (abr) af d'tair l 3aem2 ds qip5. q n9ud d 3 ^;e 5 u oj d ty ?equipe*.
4 3 ^;e bin/re d '(e, ? 1 n9ud:
9o tts @ qip5 ( )-^;e gke 9t s)ictm 6 rapid5 q c n9ud;
9o tts @ qip5 ( )-^;e 4t 9t m* rapid5 8 9t  gt ac c n9ud.
vc @ tp, ? hr  minute, 'levs  l'iue d ' !r tape:
`;taek )/t ? coln5'
tp  l'^rive d ' !r tape
qipe tp
eq`1 `4h36
eq`2 `3h57
eq`3 `3h09
eq`4 `5h49
eq`5 `4h45
eq`6 `3h26
eq`7 `4h51
eq`8 `5h52
eq`9 `4h31
eq`10 `3h44
eq`11 `4h26
4 l'^;e bin/re d '(e *itialem2 vide,  aj8te succeivm, 4 3 or4e, @ qip5
?eq`1, eq`2, eq`3, ..., eq`11*, `11 ojs d ' 3ae ?equipe* w :s);ts h l 2 modle q l'oj ?eq`11* !cd2.
`8. 4 l'^;e bin/re d '(e ci-de8s, @ n9uds eq`1  eq`2 t " *srs. 'copi(  -6t( 3 ^;e ? *sr4 @ `9 n9uds m,q4s.
fg `1: !ms ls d l'abr
`;vr 6,e tactile no`4.
un fie 6astiq vi(ge 5  .p ( c,didat ;/iste  ct q0'
`9. *diq( ql p^cs d'^;e p(met d'obtn ' liste ds qip5 3a5 d ' 6 rapide  ' 6 l?te.
po `13
 dne ci-de8s ' 3ae ?n9ud*, p(mew4 d dfinir @ ^;5 bin/r5:
`1 class n9ud:
`2 def --init--(self, equipe, gauche `" none, droit `" none):
`3 self.racine `" equipe
`4 self.gauche `" gauche
`5 self.droit `" droit
 dne ci-de8s l code d'un f ?construction-arbre* g,  p^tir d'un liste d'ls d ty ?n9ud* p(met d'*sr( succeivm q n9ud  sa 6c 4 l'abr.
`1 def construction- arbre(liste):
`2 a `" n9ud(liste(`0)b)
`3 for i in range(`1,len (liste)):
`4 inserer(a, liste(i)b)
`5 return a
' f ?construction-arbre* f3 appel  ' f ?inserer* g !?d  param)e ?arb*, d ty ?n9ud*,  ?eq*, d ty ?equipe*.
ct f :s);t l n9ud  p^tir d ?eq*  l'*sre  sa 6c 4 l'abr.
`1 def inserer(arb, eq):
`2 """ insertion d'une quipe  sa place dans un abr contenant
`3 au moins un n9ud."""
`4 if convert( eq.temps-etape) 2 convert(arb.racine.temps-etape):
`5 if arb.gauche is none:
`6 arb.gauche `" ...
`7 else:
`8 inserer(..., eq)
`9 else:
`10 if arb.droit is none:
`11 arb.droit `" n9ud(eq)
`12 else:
`13 ... `10. x6iq( ?  ' f ?inserer* 5 un f rcursive.
`11. 'copi(  -6t( @ l"s `6, `8  `13 d ' f ?inserer*.
`12. 'copi(  -6t( @ l"s `3  `5 d ' f ?est-gagnante* ci-de8s g !?d ? param)e u abr ?arbre*, d ty ?n9ud*,  g r?ve l nw d l'qipe ay ga" l'tape.
`1 def est-gagnante(arbre):
`2 if arbre.gauche `"" none:
`3 return ...
`4 else:
`5 return ...
po `14
p^tie d: 3aem2 gn
 dcide d'tair u 3aem2 gn obtenu  p^tir ( cumul ds tp mis p q qipe  p^c8rir l'?@ ds `9 tap5.
h l 2 !c q l'^;e d ' p^tie !cd?te,  :s);t l'abr ci-de8s g p(met, 7c k p^cs d'^;e ap!o!i, d'tair c 3aem2 gn ds qip5.
fg `2: abr ( 3aem2 gn
`;vr 6,e tactile no`5'
l r@em2 !vt ' .qalific1 d'un qipe ? cas d n-'spect d celui-ci. i s'avre q l'qipe `2  l'qipe `5 dv2 2) .qalifi5  m,qm k r@em2. @ n9uds ?eq`2*  ?eq`5* dv2 dc 2) sup!ims d l'abr !cd2.
 sup!im( u n9ud ?n* 4 u abr, )s pbts s !s?t2:
9o l n9ud ?n*  sup!im( 5 un fie: i suffit d l 'tir( d l'^;e;
9o l n9ud ?n*  sup!im( n'a q'u sl fs:  'lie l fs d ?n* k p d ?n*   sup!ime l n9ud ?n*;
9o l n9ud ?n*  sup!im( possde dx fs:  l r@6c p 9 succe (l'qipe g a l tp imm sp) g 5 tj l minimum d ss desc?d4s 4ts.
`13. dein( l nl ^;e d '(e ?a-final* obtenu a! sup!e0 ds qip5 ?eq`2*  ?eq`5* 4 l'abr crespd4 k 3aem2 gn. 
l'organisat s8h/te .pos( d'un f ?rechercher* p(mew4 d savr * un qipe a " .qalifie 8 n.  dne @ spcific1s d ' f ?rechercher,* !en4 ? param)e ?arbre*  ?equipe*.
po `15
`1 def rechercher(arbre, equipe):
`2 """
`3 paramtres
`4 ggggggggg
`5 arbre: un abr, non vide, de type n9ud, reprsentant le
`6 classement gnral.
`7 equipe: un lment, de type equipe, dont on veut dterminer
`8 l'appartenance ou non  l'abr arbre.
`9 rsultat
`10 ggggggggg
`11 cette fonction renvoie true si equipe est un n9ud de arbre,
`12 false sinon.
`13 """
`14 ...
 ct f (?a-final* dsi"e l'^;e obtenu  ' q0 `13, a! sup!e0 ds qip5 `2  `5):
9o l'appel ?rechercher(a-final, eq`1)* r?ve ?true*;
9o l'appel ?rechercher(a-final, eq`2)* r?ve ?false*.
`14. :ire l code d ' f ?rechercher*.

